package cn.net.sinodata.system.msghandler.process.base;

import cn.net.sinodata.common.core.enums.TaskTypeEnum;
import cn.net.sinodata.system.domain.*;

public interface IMsgProcessHandler extends Runnable {

    /**
     * 判断报文类型
     */
    TaskTypeEnum taskTypeHandle(BmTransLogRecord bmTransLogRecord, BmTransLogMsg bmTransLogMsg) throws Exception;

    /**
     * 获取产品信息
     */
    PmMonitorProduct getMonitorProduct(BmTransLogRecord bmTransLogRecord, BmTransLogMsg bmTransLogMsg) throws Exception;

    /**
     * 成交
     */
    void trans(BmTransSerial bmTransSerial, BmTransSubSerial bmTransSubSerial) throws Exception;

    /**
     * 确认
     */
    void confirm(BmTransSerial bmTransSerial, BmTransSubSerial bmTransSubSerial) throws Exception;

    /**
     * 清算
     */
    void clearing(BmTransSerial bmTransSerial, BmTransSubSerial bmTransSubSerial) throws Exception;
}
